/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uff.ihc.bd.tabelas;

import br.uff.ihc.bd.entidades.Endereco;
import br.uff.ihc.bd.entidades.Paciente;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author karol
 */
public class TB_Paciente {

    /**
     * @return the listaPacientes
     */
    public static List<Paciente> getListaPacientes() {
        return listaPacientes;
    }

    /**
     * @param aListaPacientes the listaPacientes to set
     */
    public static void setListaPacientes(List<Paciente> aListaPacientes) {
        listaPacientes = aListaPacientes;
    }

    private Paciente paciente;
    private static List<Paciente> listaPacientes = new ArrayList<Paciente>();

    public TB_Paciente() {

        addNovoPaciente("Carlos Diniz", "1234567891", "123456", "1111",new Date(), new Endereco("Rua Miguel de Frias" , "245", "proximo ao mercado", "Icarai","27908-000"));
        addNovoPaciente("Elisa Guedes", "1234567892", "123456", "2222", new Date(), new Endereco("Rua Lopes Trovao" , "165", "", "Icarai","27908-000"));
        addNovoPaciente("Fabiana de Paula", "1234567893", "123456", "3333", new Date(), new Endereco("Rua Brasil" , "34", "acima da padaria", "Inga","27908-000"));
        addNovoPaciente("Heitor Santos", "1234567894", "123456", "44444", new Date(), new Endereco("Rua Marques" , "s/n", "comercial", "Sao Domingos","27908-000"));
        addNovoPaciente("Igor Moura", "1234567895", "123456", "55555", new Date(), new Endereco("Rua 27" , "2", "", "Fonseca","27908-000"));

    }


    public void addNovoPaciente(String nome, String cpf, String rg, String numeroCS, Date dtNasc, Endereco endereco) {
        paciente = new Paciente();
        paciente.setNome(nome);
        paciente.setCpf(cpf);
        paciente.setRg(rg);
        paciente.setNumeroCartaoSaude(numeroCS);
        paciente.setDataNascimento(dtNasc);
        paciente.setEndereco(endereco);
//=======
//    public void addNovoPaciente(String nome, String cpf, String rg, String numeroCS, String dtNasc, Endereco endereco) {
//        setPaciente(new Paciente());
//        getPaciente().setNome(nome);
//        getPaciente().setCpf(cpf);
//        getPaciente().setRg(rg);
//        getPaciente().setNumeroCartaoSaude(numeroCS);
//        getPaciente().setDataNascimento(new Date(dtNasc));
//        getPaciente().setEndereco(endereco);
//>>>>>>> .r44

        listaPacientes.add(paciente);
    }

    public List<Paciente> selectAll() {
        return getListaPacientes();
    }

    public Paciente buscarPorNome(String nome) {
        for (Paciente p : getListaPacientes()) {
            if (p.getNome().equalsIgnoreCase(nome)) {
                return p;
            }
        }
        return null;
    }

    public Paciente buscarPorCartaoSaude(String cs) {
        for (Paciente p : getListaPacientes()) {
            System.out.println("> " + cs + " " + p.getNumeroCartaoSaude());
            if (p.getNumeroCartaoSaude().equalsIgnoreCase(cs)) {
                return p;
            }
        }
        return null;
    }

    public Paciente buscarPorTodosDados(String nome, String cpf, String rg, Date dataNascimento, String numeroCartaoSaude   ) {
        for (Paciente p : getListaPacientes()) {
            if (p.getNome().equalsIgnoreCase(nome)) {
                if (p.getCpf().equalsIgnoreCase(cpf)) {
                    if (p.getRg().equalsIgnoreCase(rg)) {
                        if (p.getDataNascimento().equals(dataNascimento)) {
                            if (p.getNumeroCartaoSaude().equalsIgnoreCase(numeroCartaoSaude)) {
                                return p;
                            }
                        }
                    }
                }
            }
        }
        return null;
    }

    /**
     * @return the paciente
     */
    public Paciente getPaciente() {
        return paciente;
    }

    /**
     * @param paciente the paciente to set
     */
    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }
}
